当为某一个用户做推荐评估时,选择一个临界值,以该临界值为参照为该用户构造一个目标最大击中集(即相关项RelevantItemsIDs),然后将该用户数据中的包含在最大击中集中的物品去除,这样形成一个新的训练集。这个新的训练集中,只是去除了部分数据。然后,使用该训练集为该用户进行推荐。如果推荐的物品包含在最大击中集中,则说明击中。依照这个办法为该用户计算 Precision 和 Recall 值。依照这个办法为所有的用户计算 Precision 和 Recall 值。然后,Precision 和 Recall 的平均值作为模型的 Precision 和 Recall 值。
RecommenderIRStatsEvaluator是一个接口,用于得到推荐系统的准确率,召回率等统计指标。
它定义的函数如下
计算临界值
|
|
getRelevantItemsIDs
按照用户对物品的打分从大到小排序,将大于设定的的relevanceTheshold的值存入relevantItemIDs中,relevantItemIDs最大值为at
|
|
获取训练集
这个训练集的构造规则是:
- 对于其它的用户,将他们所有的(item,preference)都加入训练集;
- 对于这个用户user,将它的除了相关项之外的其它项的喜好加入训练集;
然后,我们使用推荐算法进行推荐。推荐的时候,我们就可能给UserID 推荐移除的物品或者其他的物品。
构造训练模型
|
|
进行推荐
|
|
计算推荐结果包含在相关项中的个数
|
|
计算查全率、查准率
|
|
参考
http://pan.baidu.com/s/1pKE97wJ
http://www.myexception.cn/cloud/1983215.html